package com.orangelife.service.propFeeApartment;

import java.util.List;
import java.util.Map;

import com.orangelife.exception.AppBizException;
import com.orangelife.service.propFeeApartment.model.PropFeeApartmentDto;

/*****************************************************************
 * Copyright(C) ORANGELIFE Corporation 2015. All Rights Reserved.
 *****************************************************************/
/*
 * ============================================================== 功能名
 * PropFeeApartment类的 service层的增删改查
 * 
 * @author @author
 * 
 * @version 1.1.0
 * 
 * @date 2016-06-18 12:26:04
 * ==============================================================
 */
public interface IPropFeeApartmentService {

	/**
	 * 用途 添加propFeeApartment（橙子生活）
	 * 
	 * @author
	 * @date创建时间 2016-06-18 12:26:04
	 * @param propFeeApartment
	 * @return
	 * @throws AppBizException
	 */
	public int addPropFeeApartment(PropFeeApartmentDto propFeeApartment)
			throws AppBizException;

	public int addPropFeeApartment(List<PropFeeApartmentDto> propFeeApartment)
			throws AppBizException;

	/**
	 * 用途 修改propFeeApartment（橙子生活）
	 * 
	 * @author
	 * @date创建时间 2016-06-18 12:26:04
	 * @param propFeeApartment
	 * @return
	 * @throws AppBizException
	 */

	public int editPropFeeApartment(PropFeeApartmentDto propFeeApartment)
			throws AppBizException;

	/**
	 * 用途 单个查询 （橙子生活）
	 * 
	 * @author
	 * @date创建时间 2016-06-18 12:26:04
	 * @param propFeeApartmentID
	 * @return
	 * @throws AppBizException
	 */

	public PropFeeApartmentDto findPropFeeApartmentByID(
			String propFeeApartmentID) throws AppBizException;

	/**
	 * 用途 逻辑删除（橙子生活）
	 * 
	 * @author
	 * @date创建时间 2016-06-18 12:26:04
	 * @param propFeeApartmentID
	 * @return
	 * @throws AppBizException
	 */
	public int deletePropFeeApartmentByLogic(String propFeeApartmentID)
			throws AppBizException;

	/**
	 * 用途 查询列表 （橙子生活）
	 * 
	 * @author
	 * @date 创建时间 2016-06-18 12:26:04
	 * @param search
	 *            搜索内容
	 * @param tsCreate
	 *            创建时间
	 * @param pageNo
	 *            页码
	 * @param pageSize
	 *            页面大小
	 * @return
	 * @throws AppBizExceptionception
	 */
	public List<Map<String, Object>> findPropFeeApartmentByPage(
			String tsCreate, String search, int pageNo, int pageSize)
			throws AppBizException;

	/**
	 * 用途 查询列表（返回对对象）（橙子生活）
	 * 
	 * @author
	 * @date 创建时间 2016-06-18 12:26:04
	 * @param servletRequest
	 * @param search
	 *            搜索内容
	 * @param tsCreate
	 *            创建时间
	 * @param pageNo
	 *            页码
	 * @param pageSize
	 *            页面大小
	 * @return
	 * @throws AppBizException
	 */
	public List<PropFeeApartmentDto> getPropFeeApartmentByPage(String tsCreate,
			String search, int pageNo, int pageSize) throws AppBizException;

	/**
	 * 用途 根据一张表内的所有ID查询propFeeApartment（橙子生活）(返回Map<String, Object>)
	 * 
	 * @author
	 * @date 创建时间 2016-06-18 12:26:04
	 * @param apartmentID
	 *            (非必填字段)
	 * 
	 * @param sourceID
	 *            (非必填字段)
	 * 
	 * @param buildingID
	 *            (非必填字段)
	 * 
	 * @param unitID
	 *            (非必填字段)
	 * 
	 * @param billTypeID
	 *            (非必填字段)
	 * 
	 * @param apartmentType
	 *            (非必填字段)
	 * @return
	 * @throws AppBizException
	 */

	public List<Map<String, Object>> selectPropFeeApartmentByRelevantID(
			String apartmentID, String sourceID, String buildingID,
			String unitID, String billTypeID, String apartmentType)
			throws AppBizException;

	public List<Map<String, Object>> getPropFeeApartmentByRelevantID(
			Map<String, Object> map) throws AppBizException;

	/**
	 * 用途 根据一张表内的所有ID查询propFeeApartment（橙子生活）(返回对象)
	 * 
	 * @author
	 * @date 创建时间 2016-06-18 12:26:04
	 * @param apartmentID
	 *            (非必填字段)
	 * 
	 * @param sourceID
	 *            (非必填字段)
	 * 
	 * @param buildingID
	 *            (非必填字段)
	 * 
	 * @param unitID
	 *            (非必填字段)
	 * 
	 * @param billTypeID
	 *            (非必填字段)
	 * 
	 * @param apartmentType
	 *            (非必填字段)
	 * @return
	 * @throws AppBizException
	 */

	public List<PropFeeApartmentDto> findPropFeeApartmentByRelevantID(
			String apartmentID, String sourceID, String buildingID,
			String unitID, String billTypeID, String apartmentType,
			String apartmentNumb) throws AppBizException;

	/**
	 * 用途 批量查询propFeeApartment（橙子生活）(返回对象)
	 * 
	 * @author
	 * @date 创建时间 2016-06-18 12:26:04
	 * 
	 * @return
	 * @throws AppBizException
	 */

	public List<PropFeeApartmentDto> bauthfindPropFeeApartment(
			List<String> propFeeApartmentIDs) throws AppBizException;

	/**
	 * 用途 批量查询propFeeApartment（橙子生活）(返回Map)
	 * 
	 * @author
	 * @date 创建时间 2016-06-18 12:26:04
	 * 
	 * @return
	 * @throws AppBizException
	 */

	public List<Map<String, Object>> bauthfindPropFeeApartmentByMap(
			Map<String, Object> propFeeApartment) throws AppBizException;

	/***
	 * 获取房屋信息
	 * 
	 * @param propFeeApartment
	 * @return
	 * @throws AppBizException
	 */
	public List<Map<String, Object>> getHouseInfo(
			Map<String, Object> propFeeApartment) throws AppBizException;

	/***
	 * 批量删除的房子
	 * 
	 * @param ownerIDs
	 * @return
	 * @throws AppBizException
	 */
	public int bauthDeletePropFeeApartment(List<String> apartmentIDs)
			throws AppBizException;

}